#ifndef WALL_HPP
#define WALL_HPP

////////////////////////////////////////////////////////////
// Headers
////////////////////////////////////////////////////////////
#include <SmegCore/Entity/BaseEntity.hpp>

#include <SmegTools/Debug/DebugNew.hpp>

////////////////////////////////////////////////////////////
/// Represents an obstacle
////////////////////////////////////////////////////////////
class Wall : public smeg::core::BaseEntity {
public:
    ////////////////////////////////////////////////////////////
    /// Default Constructor
    ///
    ////////////////////////////////////////////////////////////
                                Wall();
    ////////////////////////////////////////////////////////////
    /// Constructor with a texture
    ///
    /// \param _pTexture :      New texture
    ///
    ////////////////////////////////////////////////////////////
    explicit                    Wall( const sf::Texture* _pTexture );
    ////////////////////////////////////////////////////////////
    /// Constructor with a texture and a rectangle
    ///
    /// \param _pTexture :      New texture
    /// \param _Rectangle :     Rectangle defining the region of the texture to display
    ///
    ////////////////////////////////////////////////////////////
                                Wall( const sf::Texture* _pTexture, const sf::IntRect& _Rectangle );
    ////////////////////////////////////////////////////////////
    /// Copy Constructor
    ///
    /// \param _Copy :          Entity to copy from
    ///
    ////////////////////////////////////////////////////////////
                                Wall( const Wall& _Copy );
    ////////////////////////////////////////////////////////////
    /// Virtual Destructor
    ///
    ////////////////////////////////////////////////////////////
    virtual                     ~Wall();

    DECLARE_CLONE_FUNC( Wall, smeg::core::BaseObject )

    virtual void                ComputeBoundingVolume();
};

#include <SmegTools/Debug/DebugNewOff.hpp>

#endif // WALL_HPP
